package com.sqfw.framework.task;

import com.sqfw.project.knowledge.service.CmsKnowledgeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

/**
 * 同步csm平台的知识库数据
 *
 * @author tangxt
 * @date 2024-06-21
 */
@Component("cmsKnowledgeTask")
@Slf4j
public class CmsKnowledgeTask {


    @Autowired
    public CmsKnowledgeService cmsKnowledgeService;

    @Value("${server.port}")
    private String port;

    private final String PORT_8091 = "8091";


    /**
     *  同步政策解释的知识数据List
     * */
    public void syncPolicyInterpretation(String beginDisplayDate, String endDisplayDate) {
        if (!PORT_8091.equals(port)) {
            return;
        }
        log.info("同步-政策解释-开始");
        cmsKnowledgeService.syncPolicyInterpretation(beginDisplayDate, endDisplayDate);
        log.info("同步-政策解释-结束");
    };

    /**
     * 同步规范性文件的知识List
     * */
    public void syncNormativeDocument(String beginDisplayDate, String endDisplayDate) {
        if (!PORT_8091.equals(port)) {
            return;
        }
        log.info("同步-规范性文件-开始");
        cmsKnowledgeService.syncNormativeDocument(beginDisplayDate, endDisplayDate);
        log.info("同步-规范性文件-结束");
    }

    /**
     * 政策文件: 有许多二级分类和三级分类, 同步知识数据List
     * */
    public void syncPolicyDocument(String beginDisplayDate, String endDisplayDate) {
        if (!PORT_8091.equals(port)) {
            return;
        }
        log.info("同步-政策文件-开始");
        cmsKnowledgeService.syncPolicyDocument(beginDisplayDate, endDisplayDate);
        log.info("同步-政策文件-结束");
    }

    /**
     * 政策文件: 同步知识数据List---递归
     * */
    public void syncPolicyDocumentRecursion(String beginDisplayDate, String endDisplayDate) {
        if (!PORT_8091.equals(port)) {
            return;
        }
        log.info("同步-政策文件-栏目递归-开始");
        cmsKnowledgeService.syncPolicyDocumentRecursion(beginDisplayDate, endDisplayDate);
        log.info("同步-政策文件-栏目递归-结束");
    }


    /**
     * 同步知识库详情数据--查询一条，存储一条
     * */
    public void syncCmsKnowledge() {
        if (!PORT_8091.equals(port)) {
            return;
        }
        log.info("同步-知识库详情-开始");
        cmsKnowledgeService.syncCmsKnowledge();
        log.info("同步-知识库详情-结束");
    }

    /**
     * 再次同步失败的知识详情
     * */
    public void syncFailCmsKnowledge() {
        if (!PORT_8091.equals(port)) {
            return;
        }
        log.info("同步-失败的知识详情-开始");
        cmsKnowledgeService.syncFailCmsKnowledge();
        log.info("同步-失败的知识详情-结束");
    }


}
